// resolve(参数)
// 1.普通的值或者对象 pending --> fulfilled
// 2.传入一个Promise 
//      那么当前的Promise的状态会由当前的Promise来决定
//      相当于状态进行了移交
//  3.传入的是一个对象，并且对象有实现.then方法，那么也会执行该then方法，并且由该then方法决定后续状态(thenable)


// 传入一个promise
// const newPromise = new Promise((resolve,reject)=>{
//     // resolve("aaaaa")
//     reject("err message")
// })


// new Promise((resolve,reject)=>{
//     //pending --> fulfilled
//     resolve(newPromise)
// }).then(res=>{
//     console.log("res:",res)
// },err=>{
//     console.log("err:",err)
// })


//传入一个对象实现then方法
new Promise((resolve,reject)=>{
    //pending --> fulfilled
    const obj ={
        name:"scott",
        then:function (resolve,reject) {
            resolve("resolve message")
        }
    }
    resolve(obj)
}).then(res=>{
    console.log("res:",res)
},err=>{
    console.log("err:",err)
})

// eatable/runable
const obj ={
    eat:function () {
        
    },
    run:function () {
        
    }
}